Providing access to legacy applications from mobile devices continues to gain importance. Traditional application remoting approaches leverage Remote Desktop Services (RDS) technology such as Citrix XenApp brand application virtualization product. (Remote Desktop Services and RDS are trademarks of Microsoft Corporation, and Citrix XenApp is a trademark of Citrix Systems). That is, current application publishing approaches rely on ‘server based computing’ technology which forces multiple users to share an operating system (OS) instance, reducing the application of functionality available from cloud-based virtualized operating systems such as vSphere brand server virtualization platform to individual sessions. (vSphere is a trademark of VMware, Inc.).
Remote desktop session host (RDSH) technology creates efficiencies between sessions by sharing common DLL (dynamic link library) files and by sharing a common file system cache across sessions. The shared file cache can significantly reduce input/output (I/O) since users launching the same application as their peers will retrieve application files rapidly from the shared cache. In a virtualized datacenter, this caching can offload I/O operations per second (IOPS) from shared storage arrays. Sessions also share a common OS kernel which can save background central processing unit (CPU) cycles.
However, RDSH-based application publishing on top of virtual machine (VM) servers, such as ESX brand VM servers from VMware, Inc., is not inherently more efficient than VM based approaches when it comes to CPU consumption. Further, neither architecture previously showed a consistent advantage for CPU consumption. Most of the CPU cycles in either model derive from the user applications. RDSH designs share some OS kernel driven CPU cycles across sessions, but this may be offset by the added virtual symmetric multi-processing (vSMP) co-scheduling overload when hosting multiple larger count virtual CPU (vCPU) RDSH VMs on the same ESX host. Applications within the RDSH container must be scheduled on both the OS kernel scheduler and on the underlying hypervisor in order for applications to use the hardware. A lack of coordination exists between the OS scheduler and the hypervisor scheduler which can surface as erratic user experience and application stability problems within the virtualized RDSH context.
Traditional application publishing approaches converge with VM container based designs in terms of sessions per CPU core but show a solid benefit in the area of memory sharing and I/O reduction.